import request from '@/utils/request'

// 获取用户（所有字段）
export function getUser(userId) {
  const params = {}
  if (userId) {
    params.userId = userId
  }
  return request({
    url: '/system/user/get',
    method: 'get',
    params: params
  })
}

// 获取用户信息（部分字段）
export function getUserInfo(userId) {
  const params = {}
  if (userId) {
    params.userId = userId
  }
  return request({
    url: '/system/user/get',
    method: 'get',
    params: params
  })
}

// 获取用户列表
export function getUserList(query) {
  return request({
    url: '/system/user/paging',
    method: 'get',
    params: query
  })
}

// 保存用户，传复杂对象，参数用data
export function saveUser(user) {
  return request({
    url: '/system/user/save',
    method: 'post',
    data: user
  })
}

// 更新用户信息，传复杂对象，参数用data
export function updateUserInfo(user) {
  return request({
    url: '/system/user/updateInfo',
    method: 'post',
    data: user
  })
}

// 更新状态
export function updateStatus(userId, status) {
  const params = {
    userId,
    status
  }
  return request({
    url: '/system/user/updateStatus',
    method: 'post',
    params
  })
}

// 修改密码
export function updatePwd(user) {
  return request({
    url: '/system/user/updatePwd',
    method: 'post',
    data: user
  })
}

// 重置密码
export function doResetPwd(userId) {
  if (!userId) {
    return false
  }
  return request({
    url: '/system/user/doResetPwd',
    method: 'get',
    params: { userId }
  })
}

// 删除用户
export function deleteUser(subUserId) {
  if (!subUserId) {
    return false
  }
  return request({
    url: '/system/user/delete',
    method: 'post',
    params: { subUserId }
  })
}

// 获取用户角色列表
export function getUserRoles(userId) {
  const params = {}
  if (userId) {
    params.userId = userId
  }
  return request({
    url: '/system/user/getRoles',
    method: 'get',
    params: params
  })
}

// 批量启用，禁用角色
export function batUpdateStatus(subUserIds, status) {
  return request({
    url: '/system/user/batUpdateStatus',
    method: 'post',
    data: { subUserIds, status }
  })
}

// 批量删除角色
export function batDelete(subUserIds) {
  return request({
    url: '/system/user/batDelete',
    method: 'post',
    data: { subUserIds }
  })
}
